#include <glib.h>

gint main(gint argc, gchar **argv)
{
    GArray *arr = NULL;
    gint i = 0;
    gint x = 0;
    guint n = 0;

    arr = g_array_new(FALSE, FALSE, sizeof(gint));
    n = g_array_get_element_size(arr);
    g_print("element size:%d, array len:%d \n", n, arr->len);

    x = 1;
    g_array_append_val(arr, x);
    x = 3;
    g_array_append_val(arr, x);
    x = 5;
    g_array_append_val(arr, x);

    n = g_array_get_element_size(arr);
    g_print("element size:%d, array len:%d \n", n, arr->len);

    for(i=0; i<arr->len; i++) {
        g_print("arr[%d]:%d(addr:%p) \n", i, g_array_index(arr, gint, i), &g_array_index(arr, gint, i));
    }

    g_print("element0:%d \n", ((gint *)arr->data)[0]);
    g_print("element1:%d \n", ((gint *)arr->data)[1]);
    g_print("element2:%d \n", ((gint *)arr->data)[2]);
 
    g_array_free(arr, TRUE);

    return 0;
}